﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using IUAP;

public partial class PagAdmin_CrearUsuario : BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void CreateUserWizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
    {
        UserProfile1.SaveProfile();
    }

    protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
    {
        //llamo a los roles 
        BindRoles(); 
        //mando al control perfil el usuario actual
        UserProfile1.CodUsuario = CreateUserWizard1.UserName;
        UserProfile1.ReloadProfile();
    }

    private void BindRoles()
    {
        chklRoles.DataSource = Roles.GetAllRoles();
        chklRoles.DataBind();
        foreach (string role in Roles.GetRolesForUser(CreateUserWizard1.UserName))
            chklRoles.Items.FindByText(role).Selected = true;
    }

    protected void btnCreateRole_Click(object sender, EventArgs e)
    {
        if (!Roles.RoleExists(txtNewRole.Text.Trim()))
        {
            Roles.CreateRole(txtNewRole.Text.Trim());
            BindRoles();
        }
    }

    protected void btnUpdateRoles_Click(object sender, EventArgs e)
    {
        // primero quitar el usuario de todas las funciones ...
        string[] currRoles = Roles.GetRolesForUser(CreateUserWizard1.UserName);
        if (currRoles.Length > 0)
            Roles.RemoveUserFromRoles(CreateUserWizard1.UserName, currRoles);
        // y luego agregar el usuario a las funciones seleccionadas
        List<string> newRoles = new List<string>();
        foreach (ListItem item in chklRoles.Items)
        {
            if (item.Selected)
                newRoles.Add(item.Text);
        }
        try
        {
            Roles.AddUserToRoles(CreateUserWizard1.UserName, newRoles.ToArray());
            lblRolesFeedbackOK.Text = "Rol asignado correctamente";
            lblRolesFeedbackOK.CssClass = "done";
        }
        catch {
            lblRolesFeedbackOK.Text = "Eliga un Rol";
            lblRolesFeedbackOK.CssClass = "error";
        }

        lblRolesFeedbackOK.Visible = true;
    }

    protected void BtnAsignarEscuela_Click(object sender, EventArgs e)
    {
        ProfileCommon perfil = Profile.GetProfile(CreateUserWizard1.UserName);        
        try
        {
            perfil.academico.codescuela = DropDownList1.SelectedValue;
            perfil.academico.nombescuela = DropDownList1.SelectedItem.Text;
            perfil.Save();
            lblEscuelaAsignada.Text = "Escuela asignada correctamente";
            lblEscuelaAsignada.CssClass = "done";
        }
        catch
        {
            lblEscuelaAsignada.Text = "Eliga una Escuela";
            lblEscuelaAsignada.CssClass = "error";
        }

        lblEscuelaAsignada.Visible = true;
    }
}